package com.IO流.Writer字符输出流;

import org.junit.jupiter.api.Test;

import java.io.FileWriter;
import java.io.IOException;

public class FileWriter常用方法 {
    /**FileWriter是字符输出流
     * 1.构造器
     * new FileWriter(File/String) 默认覆盖模式，每次重新打开写入时会覆盖之前的内容；
     * new FileWriter(File/String,true) 追加模式，每次重新打开写入时会追加到之前的内容的末尾；
     * 2.写入
     * write() 写入单个字符
     * write(char[] ch) 将ch数组写入进去
     * write(char[] ch,int off,int len) 将ch数组指定范围写入进去
     * write(String str)   将整个字符串写入进去
     * write(String str,int off,int len) 将字符串指定范围写入进去
     * 3.相关API
     * str.toCharArray()   将字符串转成char数组
     *
     * 4.重点
     * FileWriter用完后必须要关闭（close） 或者 刷新（flush），否则写入不到指定文件中（因为写入的字符再内存中，未写入到磁盘）
     */
    String path = "D:\\JAVA_test\\FileWriterTest01.txt";
    @Test
    public void test01() {
        FileWriter fileWriter = null;

        try {
            fileWriter = new FileWriter(path);
//            * write() 写入单个字符
            fileWriter.write('H');
//            * write(char[] ch) 将ch数组写入进去
            char[] chars = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
            fileWriter.write(chars);
//            * write(char[] ch,int off,int len) 将ch数组指定范围写入进去
            fileWriter.write(chars,0,chars.length);
//            * write(String str)   将整个字符串写入进去
            fileWriter.write("韩顺平YYDS");
//            * write(String str,int off,int len) 将字符串指定范围写入进去
            fileWriter.write("哈哈哈哈哈",0,5);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            try {
                fileWriter.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }
}
